package com.dd.cloud.user.req.patient;

import com.dd.cloud.common.annotate.validation.FixedValue;
import com.dd.cloud.common.annotate.validation.Name;
import com.dd.cloud.common.annotate.validation.Phone;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * 患者添加就诊卡参数
 * </p>
 *
 * @author czg
 * @since 2023-07-12
 */
@Data
public class PatientMedCardAddReq implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 就诊卡id 身份证和手机号重复时需要带此id
     */
    private Integer id;

    /**
     * 证件类型 1居民身份证、2护照、3港澳居民身份证、4台湾居民身份证
     */
    @NotNull(message = "证件类型不能为空")
    private Integer cardType;

    /**
     * 证件号码号码
     */
    private String idCard;

    /**
     * 手机号
     */
    @Phone
    private String mobileNumber;

    /**
     * 验证码
     */
    @NotBlank(message = "验证码不能为空")
    private String code;

    /**
     * 姓名
     */
    @Name(begin = "姓名")
    private String name;

    /**
     * 民族
     */
    @NotBlank(message = "民族不能为空")
    private String nationality;

    /**
     * 出生日期
     */
    @Column(comment = "出生日期")
    private LocalDate birthDate;

    /**
     * 年龄
     */
    @NotNull(message = "年龄不能为空")
    private Integer age;

    /**
     * 年龄类型 1月份 2年岁
     */
    private Integer ageType;

    /**
     * 性别，男、女
     */
    @NotBlank(message = "性别不能为空")
    private String sex;

    /**
     * 婚姻状态，未婚、已婚
     */
    @NotBlank(message = "婚姻不能空")
    private String maritalStatus;

    /**
     * 是否怀孕
     */
    private Integer pregnant;

    /**
     * 通信地址
     */
    private String contactAddress;

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String district;

    /**
     * 与患者的关系
     */
    @NotNull(message = "关系不能空")
    @FixedValue(strValues = {"1","2","3","4"}, begin = "关系")
    private Integer nexus;

    /**
     * 证件是否二次确认,即同步 0未确认 1已确认
     */
    @NotNull(message = "证件二次确认不能为空")
    private Integer cardCheck=0;

    /**
     * 手机是否二次确认,即同步 0未确认 1已确认
     */
    @NotNull(message = "手机号二次确认不能为空")
    private Integer phoneCheck;
}
